package com.wb3.organizer.service;

import java.util.List;

import com.wb3.organizer.dao.AccountDAO;
import com.wb3.organizer.model.Account;

public class AccountService {
	
	private AccountDAO dao;

	public AccountDAO getDao() {
		return dao;
	}

	public void setDao(AccountDAO dao) {
		this.dao = dao;
	}
	
	/**
	 * 从数据库读取所有的用户与输入的用户名密码比较，匹配成功返回true，失败返回false
	 * @param account
	 * @return
	 */
	public boolean accountCheck(Account account){
		List<Account> list = dao.getAll();
		
		for(int i=0; i<list.size(); i++){
			if(list.get(i).getUsername().equals(account.getUsername()) && list.get(i).getPassword().equals(account.getPassword())){
				account.setAcc_id(list.get(i).getAcc_id());
				account.setEmail(list.get(i).getEmail());
				account.setTheme(list.get(i).getTheme());
				return true;
			}
		}
		return false;
	}
	
	/**
	 * 调用dao.save()方法创建新用户
	 * return 0：添加成功, return 1:两次输入的密码不一致, return 2:用户名已经存在
	 * @param account
	 */
	public int accountCreate(Account account, String repassword){
		if(!account.getPassword().equals(repassword)){
			return 1;
		}
		//获取数据库所有的用户信息,循环遍历是否判断用户名是否存在
		List<Account> list = dao.getAll();
		for(int i=0; i<list.size(); i++){
			if(list.get(i).getUsername().equals(account.getUsername())){
				return 2;
			}
		}
		//页面传过来的值默认为0，这里将它初始化为3
		if(account.getTheme() == 0){
			account.setTheme(2);
		}
		dao.save(account);
		return 0;
	}
	
	/**
	 * 调用dao.update()方法更新用户信息
	 * @param account
	 */
	public int accountUpdate(Account account, Account sessionAcc, String repassword){
		//若用户没有输入密码,则不修改密码
		if(account.getPassword().equals("") && repassword.equals("")){
			account.setPassword(sessionAcc.getPassword());
			dao.update(account);
			return 0;
		}
		if(!account.getPassword().equals(repassword)){
			return 1;
		}else{
			dao.update(account);
			return 0;
		}
	}
	
	
	public void accountTheme(Account account){
		dao.update(account);
	}
}
